import * as actionTypes from './actionTypes';
import { fromJS } from 'immutable'

const defaultState = fromJS({//immutable对象
    focused: false,
    mouseIn: false,
    list: [],
    page: 1,
    totalPage: 1,
});

const reduce = (state = defaultState, action) => {
    if (action.type === actionTypes.SEARCH_FOCUS) {
        //immutable对象的set方法，会结合之前的immutable对象的值
        //和设置的值，返回一个全新的对象
        return state.set('focused',true);
    }
    if (action.type === actionTypes.SEARCH_BLUR) {
        return state.set('focused',false);
        // return{
        //     focused: false
        // }
    }
    if (action.type === actionTypes.CHANGE_LIST) {
        return state.merge({
            list: action.data,
            totalPage: action.totalPage
        })
        // return state.set('list',action.data).set('totalPage',action.totalPage)//与上面等价
    }
    if (action.type === actionTypes.MOUSE_ENTER) {
        return state.set('mouseIn',true)
    }
    if (action.type === actionTypes.MOUSE_LEAVE) {
        return state.set('mouseIn',false)
    }
    if (action.type === actionTypes.CHANGE_PAGE) {
        return state.set('page',action.page)
    }

    return state;
}

export default reduce;